Thumbnail generation from panoramic images

ABSTRACT

Generating thumbnails from panoramic images is described. In one or more implementations, a 2D projection of a panoramic image is received and projected onto a 3D surface to generate a 3D projection. Portions of the 3D projection are formed, and each portion is projected to a 2D plane to generate 2D projections of the portions. Object recognition is then performed on the portions that identifies objects, attributes of the objects, and locations of the objects within the panoramic image. Responsive to an image search query matching one of the recognized objects, the system generates a thumbnail from the panoramic image specific to a portion of the panoramic image that contains the object and outputs the thumbnail.

RELATED APPLICATIONS

This Application claims priority as a continuation of U.S. patentapplication Ser. No. 15/594,992, filed May 15, 2017, and titled“Thumbnail Generation from Panoramic Images,” the subject matter ofwhich is hereby incorporated by reference in its entirety.

BACKGROUND

The volume of digital images, hereinafter also referred to as “images”for simplicity in the following discussion, that are available forconsumption by users is ever increasing. As the volume of imagesincreases, so too does the need for accurate and user friendly searchingof the images. In order to find images with specific content, usersoften provide search terms or other criteria to a computing device toobtain meaningful results. For example, the computing device may performan image search using the search term “boat,” and a group of images thathave been identified as containing a boat may be returned. In typicaldigital images, a simple display of the returned images works well, e.g.via thumbnails, as the thumbnail typically captures an entirety ofcontent included in the image, e.g., a particular object. However, basicthumbnail generation from panoramic images can be problematic due to theamount of content included even within a single image.

Panoramic images are typically viewed as 3D projections due to fields ofview that are generally larger than that of a human eye. Because 3Dprojections generally require specialized viewers, such as Marzipano®,panoramic images are most often stored and viewed as two-dimensional(2D) projections, e.g. equirectangular projections and fish eyeprojections. Therefore, in order to return panoramic images in responseto an image search, a conventional computing device typically generatesa thumbnail of an entire 2D projection of the panoramic image. However,this may cause distortion to objects within the projection and result inan inability to discern individual objects within the projection. Inanother conventional technique, a computing device may create athumbnail of a center portion of the 2D projection (where it isundistorted) to represent a panoramic image. Although the thumbnail ofthe centered portion is visually pleasing and comprehendible to a user,many of the objects within the image may reside outside of thethumbnail. Accordingly, if an image search involves an object that isoutside of the thumbnail portion, the user will most likely determinethat the image is irrelevant to the search even though the panoramicimage contains the object. Thus, conventional techniques fail togenerate useful thumbnails of panoramic images such that a user caneasily see specific content within the panoramic images responsive to animage search.

SUMMARY

Thumbnail generation by a computing device from panoramic images isdescribed. The thumbnails are based on portions of panoramic images thatare specific to recognized objects within the panoramic images. In thisway, a user can quickly and easily see a thumbnail of a portion of apanoramic image that is relevant to an image search. By utilizingrelevant thumbnails, the technical limitations of conventional imagesearch techniques when confronted with panoramic images can be overcome.In an implementation, a digital medium environment includes at least onecomputing device that is configured to receive a 2D projection of apanoramic image. The computing device projects the 2D projection onto a3D surface, such as a sphere. From there, the computing device generatesa series of 2D projections of portions of the 3D projection and runsobject recognition on the 2D portions. The computing device thenidentifies object and location of the objects within the panoramicimage. The computing device is then configured to generate a 2Dprojection of a portion of the panoramic image that includes an objectthat is a subject of an image search.

This Summary introduces a selection of concepts in a simplified formthat are further described below in the Detailed Description. As such,this Summary is not intended to identify essential features of theclaimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. Entities represented in the figures may be indicative of one ormore entities and thus reference may be made interchangeably to singleor plural forms of the entities in the discussion.

FIG. 1 is an illustration of a digital medium environment in an exampleimplementation that is operable to generate thumbnails from panoramicimages.

FIG. 2 is an illustration of an example digital medium implementationillustrating the object location module of FIG. 1 in greater detail.

FIG. 3 is an illustration of an example digital medium implementationillustrating operation of the thumbnail generation module of FIG. 1 ingreater detail.

FIG. 4 is an illustration of an example implementation illustrating anexample 2D projection of a panoramic image.

FIG. 5 is an illustration of an example implementation illustratingconventional techniques of generating a thumbnail from the panoramicimage of FIG. 4.

FIG. 6 is an illustration of an example implementation illustrating arelationship between a 2D projection and a 3D projection of a panoramicimage.

FIG. 7 is an illustration of an example implementation illustratingmultiple 2D projections of portions of a 3D projection of the panoramicimage of FIG. 4.

FIG. 8 is an illustration of an example implantation illustratinglocations of recognized objects that match search terms of an imagesearch and thumbnails generated for each of the search terms withregards to the panoramic image of FIG. 4.

FIG. 9 is a flow diagram depicting a procedure in an exampleimplementation to detect an object and determine a location of therecognized object within a panoramic image for use in generating athumbnail from the panoramic image.

FIG. 10 is a flow diagram depicting a procedure in an exampleimplementation to output a generated thumbnail from a panoramic imagecorresponding to an object within the panoramic image.

FIG. 11 is an illustration of a system and device in an exampleimplementation that is operable to generate thumbnails from panoramicimages.

DETAILED DESCRIPTION

Overview

Panoramic images generally capture a scene with a field of view that islarger than that of a human eye. The most intuitive way to view apanoramic image through use of a computing device is by projecting thepanoramic image onto a 3D surface, for example, onto a sphere “around”the viewer. Although a 3D projection may be the best way to visualize apanoramic image via a computing device, it is not a practical format forstoring and viewing panoramic images, thus, panoramic images are mostoften stored as 2D projections. Similar techniques have long been usedby map makers to project portions of globes, to generate 2D maps, astraveling with a globe is not practical. Although 2D projections displayan entirety of the image data contained within the panoramic image, 2Dprojections of entire panoramic images are typically hard to decipherand often contain a large amount of distortion. Conventional techniquesused to present panoramic images to users either rely on generation of athumbnail of the entirety of the 2D projection or generation of athumbnail of the center portion of the 2D projection. Thus, theseconventional techniques may result in generation of a thumbnail that isdifficult to decipher and may lack portions of the panoramic image thatare relevant to a user, e.g., as part of an image search.

Techniques and systems are described to generate thumbnails frompanoramic images. When searching for digital images, a user's experienceis generally dictated by the accuracy of the results and the speed atwhich images can be parsed to find images of interest. In the specialcase of a panoramic image, a user wants to view portions of thepanoramic images that are relevant to an image search, such that theuser can quickly and easily determine if the image is relevant.

In one example, the computing device receives a panoramic image, fromwhich, the thumbnail is to be generated. The panoramic image may beconfigured in a variety of ways, such as a 2D projection, a 3Dprojection, a virtual reality format, a specialized file format forpanoramic images, and so on. Regardless, of how the panoramic image isreceived, the computing device projects the panoramic image onto a 3Dsurface to generate a 3D projection (if it is not already). From the 3Dprojection, the computing device generates a series of portions of the3D projection and projects these portions to 2D planes. For example, thecomputing device may use a “sliding window” over the 3D surface in orderto generate this series. The computing device then performs objectrecognition on the portions to identify objects and attributes of theobjects within the portions along with locations of the objects relativeto the 3D projection. Responsive to one of the objects matching a usersearch query, the computing device may then generate a thumbnail byprojecting the coordinates of the identified object from the 3Dprojection to a 2D plane for output. In this way, a user search for animage of an object can receive a thumbnail of a portion of a panoramicimage specific to that object. A variety of other examples are alsocontemplated as further described in the following sections.

An example environment is described that may employ the thumbnailgeneration techniques described herein. Example procedures are thendescribed which may be performed in the example environment as well asother environments. Consequently, performance of the example proceduresis not limited to the example environment and the example environment isnot limited to performance of the example procedures.

Terms

The term “panoramic image” refers to any electronic image file thatcaptures image data showing a field of view greater than a human eye,approximately 160° by 75°. For example, many panoramic images havefields of view of 360° by 180°, which are referred to as 360° panoramaor panoramic images, spherical view images, globe view images, and soon.

The term “thumbnail” refers to a representation of an image that iseasily sent, stored, and consumed. Examples of thumbnails are portionsof digital images or lower resolution representations of digital images.

The term “2D projection” or “forward projection” refers to any sortprojection of a panoramic image or a portion of a panoramic image onto a2D plane such as a cylindrical projection, equirectangular projection,fisheye projection, cubic projection, and so on. 2D projections aretypically used to store and display panoramic images.

The term “3D projection” or “reverse projection” refers to any sort ofprojection of a panoramic image or a portion of a panoramic image onto a3D surface such as a sphere. Although these types of projections aremore intuitive for a user, 3D projections necessitate complicatedinterfaces to view properly.

The term “object” refers to a recognized or identified portion of apanoramic image that has attributes. An example of an object is a whitesail boat.

The term “location” refers to a location of an object within thepanoramic image such that a 2D projection of a portion of the panoramicimage corresponding to the object can be created. An example locationmay be a bounding box having four longitude and latitude coordinates.

Example Environment

FIG. 1 depicts a digital medium environment, generally at 100, in anexample implementation that is operable to generate thumbnails frompanoramic images. The illustrated digital medium environment 100includes a computing device 102 that contains a thumbnail module 104.The thumbnail module 104 is implemented at least partially in hardwareof the computing device 102 to generate a thumbnail 106 from a panoramicimage 108. The thumbnail 106, for instance, may be configured to capturea recognized object 110 contained within panoramic image 108. Both thepanoramic image 108 and thumbnail 106 are illustrated as stored in astorage device 112. In one implementation, thumbnail module 104,portions of thumbnail module 104, panoramic image 108, thumbnail 106, orany combination thereof may be implemented in whole or in part “in thecloud” via network 114, e.g., the Internet, a Wi-Fi network (e.g., inaccordance with one or more IEEE 802.11 standards), a wireless network,cellular data network, and so forth.

In order to generate the thumbnail 106, the thumbnail module 104utilizes a object location module 116 that is implemented at leastpartially in hardware to receive panoramic image 108 and generatethumbnail 106 corresponding to recognized object 110 within thepanoramic image 108. Although shown as a single thumbnail with a singlerecognized object, multiple thumbnails may be generated for a singlepanoramic image. For example, a user interface view 120 may be displayedthat displays three thumbnails associated with three recognized objects(a bench, a boat, and a life ring box) from panoramic image 108. Detailsof the object location module 116 and how it is implemented to generatethumbnail 106 of panoramic image 108 is described with regards to FIG.2.

The thumbnail module 104 also contains a thumbnail generation module 118that is implemented at least partially in hardware to return thumbnail106 from panoramic image 108 responsive to recognized object 110matching a search query. In this way, thumbnail 106 of recognized object110 within panoramic image 108 may be returned responsive to thecomputing device 102 receiving an image search query corresponding torecognized object 110. Details of the thumbnail generation module 118and how it is implemented to return thumbnail 106 of panoramic image 108is described with regards to FIG. 3.

FIG. 2 depicts an example implementation, generally at 200, showingoperation of the object location module 116 of FIG. 1 in greater detailas generating a thumbnail 106 of panoramic image 108 associated withrecognized object 110 within panoramic image 108. In order to do so, thecomputing device 102 first receives the panoramic image 108. Thepanoramic image 108 may be received as raw data, a 3D projection, a 2Dprojection, a panoramic viewer file type, and so on. The panoramic image108 may be received locally from computing device 102, e.g. from storage112, or from another computing device connected to computing device 102through network 114, e.g., the Internet, a Wi-Fi network (e.g., inaccordance with one or more IEEE 802.11 standards), a wireless network,cellular data network, via upload or email, and so forth. The computingdevice 102 utilizes a reverse projection module 202 that is implementedat least partially in hardware to project the received panoramic image108 onto a 3D surface, such as a sphere, in order to generate a 3Dprojection of the panoramic image 108. For example, when the panoramicimage 108 is projected onto a sphere, it can be imagined as a viewer ofthe image being at the center of the sphere with the scene projected inall sides around them. If panoramic image 108 is received as a suitable3D projection, then there is no need to project it.

The 3D projection of the panoramic image is then received by a slidingwindow forward projection module 204 that is implemented at leastpartially in hardware to generate 2D projections of portions of the 3Dprojection. The sliding window forward projection module 204 utilizes awindow that is “slid” over the surface of the 3D projection, and the 2Dprojections are generated for each new portion that the windowencompasses. Various sizes of the window/portion may be utilized by thesliding window forward projection module 204 to create the 2Dprojections of the portions.

The 2D projections of the portions of the panoramic image are thenreceived by an object recognition module 206 that is implemented atleast partially in hardware to recognize objects within the 2Dprojections of the portions. The object recognition may examine eachportion individually or on combinations of the portions. Thus, objectsmay be detected that are contained within a single portion or spanmultiple portions. The object recognition module 206 recognizes theobjects and determines locations of the objects within the panoramicimage. For example, a location of an object may comprise a bounding boxwith pixel coordinates that surrounds the object. Coordinates arediscussed further with respect to FIGS. 4 and 6-8. The objectrecognition module 206 then generates thumbnails 106 for respectiverecognized objects 110 in the panoramic image 108 based on the locationsof the recognized objects. The thumbnails may be stored as actualthumbnails or as locations of the objects such that relevant thumbnailsmay be generated at a time of an image search.

FIG. 3 depicts an example implementation, generally at 300, showingoperation of the thumbnail generation module 118 of FIG. 1 in greaterdetail as returning thumbnails of at least one panoramic imageresponsive to receiving an image search query 302. In order to do so,the computing device 102 receives the image search query 302. The imagesearch query 302 may comprise search terms, nouns, objects, objectattributes, and so on. For example, the image search query 302 maycomprise a search term “white boat.” The image search query 302 may bereceived locally from computing device 102 or from another computingdevice connected to computing device 102 through network 114, e.g., theInternet, a Wi-Fi network (e.g., in accordance with one or more IEEE802.11 standards), a wireless network, cellular data network, and soforth.

The image search query 302 is received by an image search module 304that is implemented at least partially in hardware to receive the imagesearch query 302 and determine at least one recognized object thatmatches the image search query 302, shown as recognized objects 110 and306. Image search module 304 searches for recognized objects withinpanoramic images (recognized by the object location module 116) thatmatch the image search query 302. Recognized objects 110 and 306 may befrom the same panoramic image, e.g. if a panoramic image contains twowhite boats, or from two different panoramic images, e.g. two panoramicimages that each contain a white boat. Although two recognized objectsand associated thumbnails are shown, the image search module 304 mayfind any number of recognized objects from any number of panoramicimages. Thus, the image search module 304 determines locations forrecognized objects 110 and 306 within the respective panoramic imagesthat match the search query 302.

The locations of recognized objects 110 and 306 are then received by athumbnail return module 310 that is implemented at least partially inhardware to output thumbnails 106 associated with recognized object 110and thumbnail 308 associated with recognized object 306. As discussedabove, the thumbnails may be generated prior to the search, e.g. at atime the object location module 116 recognizes objects, or thethumbnails may be generated responsive to the search based oncoordinates of the recognized objects and the respective panoramicimages that contain the recognized objects. Thus, thumbnail returnmodule 310 sends thumbnails 106 and 308 that are specific to detectedobjects 110 and 306, respectfully, both of which match image searchquery 302.

FIG. 4 depicts an example implementation, generally at 400, showing thepanoramic image 108 as an 2D equirectangular projection and an examplecoordinate system 402 for the 2D equirectangular projection. In thisexample, coordinate system uses standard latitude (phi) and longitude(lambda) coordinates that are similar to coordinates used for globes andmaps of Earth. Any coordinate system may be used without departing fromthe scope of this disclosure. Coordinate system 402 also contains avisual guide displaying what parts of the panoramic image 108 are wherein relation to the viewer. As shown, the grass is in front of theviewer, the concrete sidewalk/dock runs out to the left and right of theviewer, and the ocean is behind the viewer.

FIG. 5 depicts examples of conventional techniques of generating athumbnail for the panoramic image of FIG. 4 to output responsive toreceiving an image search. In this example, a first thumbnail 500 may begenerated comprising the entirety of the 2D projection. As shown, a usermay not be able to discern details about objects within the thumbnaildue to distortion and the large field of view within the thumbnail. Asecond thumbnail 502 may be generated comprising a portion in the middleof the 2D projection (denoted by bounding box 504). As shown, a user isonly exposed to a small portion of the image data and thus may determinethat the panoramic image is irrelevant to the image search.

FIG. 6 depicts an example implementation, generally at 600, showing howcoordinates of an equirectangular 2D projection 602 of a panoramic imageare “reverse projected” to a 3D spherical projection 604 by reverseprojection module 202. The term reverse is used because, as discussedabove, the native format of a panoramic image is a 3D projection. Inthis example, the same coordinate system from FIG. 4 is used (item 402).A point within the equirectangular 2D projection 602 has coordinates(λ_(i),φ_(j)) corresponding to its longitude and latitude, respectively,when reverse projected onto a 3D sphere. This is why equirectangularprojections are sometimes referred to as “non-projections” because ofthe direct coordinate mapping between 2D and 3D. In order to reverseproject the 2D projection 602 to the 3D projection 604, the longitudesand latitudes from the points are used as angles in two dimensions toplace pixels in respective places on the sphere. This is very similar tomapping points from a map to a globe. Although an equirectangularprojection is used, any type of 2D projection may be reverse projectedto 3D similarly, as each type of 2D projection has a method of reverseprojection to 3D.

FIG. 7 depicts an example implementation, generally at 700, showing howportions of the 3D spherical projection 604 from FIG. 6 are forwardprojected back to 2D by the sliding window forward projection module 204and how object recognition is performed on the 2D projections of theportions by the object recognition module 206. In order to do so, aseries of portions of the 3D projection are generated by the slidingwindow forward projection module 204 (denoted by lines on the sphere).The portions may be any size, and the process may repeat for a pluralityof portion sizes. Once portions are determined, each portion is forwardprojected by the sliding window forward projection module 204 to 2D. Asliding window may be used which progressively projects adjacentportions around the sphere. By forward projecting only a portion of thepanoramic image, distortions are not generated, and thus objectrecognition can be used more effectively.

Once the 2D projections of the portions are generated, objectrecognition is performed on each of the portions by the objectrecognition module 206. Object recognition may be any sort of detectionof objects contained within the image and attributes of the objects.Attributes may be words within the image (detected through textrecognition), shapes, colors, and so on. As discussed above, multiplesizes of portions may be used to ensure that recognized objects arecontained within a portion, or a recognized object may span multipleportions. Regardless, locations of the objects are determined, forexample as latitude and longitude coordinates of the objects, a boundingbox surrounding the object having latitude and longitude coordinates,another coordinate system, and so on, such that the objects can belocated within the 3D projection. In this example, object recognitionhas determined that there is a bench 702, a life ring box 704, and awhite boat 706 within panoramic image 108 with corresponding locationsthat will be discussed below in reference to FIG. 8.

FIG. 8 depicts an example implementation, generally at 800, showingfunctionality of the thumbnail generation module 118 as generating andreturning thumbnails specific to three separate image search queries 302that match portions of panoramic image 108. First, a search query for abench is received by the thumbnail generation module 118. The thumbnailgeneration module 118 determines that panoramic image 108 contains abench with locations (λ₁,φ₁), (λ₂,φ₁), (λ₁,φ₂), (λ₂,φ₂). Responsive tothe determination, the thumbnail generation module 118 generatesthumbnail 802 comprising a 2D projection of a portion of the panoramicimage corresponding to the coordinates of the bench. Two other searchqueries are depicted representing search queries for a boat and a lifering box, for which the thumbnail generation module 118 generatesthumbnails 804 and 806 from panoramic image 108, respectively. All threeof the thumbnails 802, 804, and 806 are linked to panoramic image 108.Thus, a computing device that receives thumbnails 802, 804, and 806responsive to a search query navigates to the entire panoramic image 108responsive to receiving a user selection to any of the thumbnails 802,804, and 806. In another implementation, selection of a thumbnail causesthe computing device to navigate to an image of the identified portionof the panoramic image corresponding to the thumbnail and not the entirepanoramic image 108. In this way, different thumbnails of panoramicimage 108 may be generated by the computing device depending onterms/attributes of a search query matching portions of the panoramicimage 108.

Through use of the techniques described herein, a thumbnail can begenerated from a panoramic image depicting a portion of the panoramicimage that meets a search criterion. For example, if a user searches fora boat, and a panoramic image contains a boat, then the system returns athumbnail of only the boat and not the entire image or a defaultthumbnail of the image. In this way, different thumbnails for a singlepanoramic image may be generated depending on search terms used to findthe panoramic image. This leads to image search results that are bothaccurate and easy to parse by a user.

Example Procedures

The following discussion describes generating thumbnails from panoramicimages that may be implemented utilizing the previously describedsystems and devices. Aspects of each of the procedures may beimplemented in hardware, firmware, or software, or a combinationthereof. The procedures are shown as a set of blocks that specifyoperations performed by one or more devices and are not necessarilylimited to the orders shown for performing the operations by therespective blocks. In portions of the following discussion, referencewill be made to FIGS. 1-8.

FIG. 9 depicts, generally at 900, a procedure in an exampleimplementation in which a location of a recognized object within apanoramic image is determined by a computing device.

First, a 3D projection of a panoramic image is generated by thecomputing device (step 902). The panoramic image may be received as a 2Dprojection, such as an equirectangular projection. An example of areceived 2D projection is panoramic image 108 discussed with respect toFIGS. 1, 2, 4 and 6. Regardless of how the panoramic image is received,the panoramic image 2D is reverse projected to a 3D surface to generatea 3D projection of the panoramic image. For example, the equirectangularprojection 108 may be projected onto a sphere to generate the spherical3D projection 604 of the panoramic image discussed with respect to FIG.6. In an implementation, the panoramic image is received as a 3Dprojection, which removes the need for step 902.

Second, a plurality of portions of the 3D projection are formed by thecomputing device (step 904). In the case of a spherical 3D projection,portions may comprise square windows dispersed over the surface of thesphere. An example of portions of a 3D projection are the squares or“sliding window” on the spherical projection 604 discussed with respectto FIG. 7.

Third, a plurality of two-dimensional projections for the plurality ofportions are generated by the computing device by projecting arespective said portion onto a two-dimensional plane (step 906). Forexample, a sliding window may be used that projects the portions in asequence of adjacent portions to a two dimensional plane.

Fourth, locations of objects and information about the objects isdetermined by the computing device by performing object recognition onthe plurality of two-dimensional projections (step 908). Objects may berecognized even if the objects span multiple portions. In animplementation, a size of the portions is varied, and the partitioning,projection, and object recognition are repeated such that objects ofvarious sizes can be identified within the portions. Examples ofidentified objects and portions are the bench 702, the life ring box704, and the white boat 706 within panoramic image 108 discussed withrespect to FIG. 7.

Finally, locations of the objects and the information about the objectsis output by the computing device (step 910). For example, a location ofa white boat by be output once the white boat is identified in thepanoramic image. Examples of identified locations of objects are thecoordinates of thumbnails 802, 804, and 806 discussed with respect toFIG. 8.

Although described in terms of the above steps, in an implementation,object recognition may be performed on the 2D projection of the entirepanoramic image to determine locations of objects. In this way, similarlocations can be determined without necessitating reverse projection ofthe panoramic image and forward projection of each of the portions.

FIG. 10 depicts, generally at 1000, a procedure in an exampleimplementation in which a thumbnail of a portion of a panoramic image isoutput by a computing device responsive to the portion containing anobject that meets a search criterion.

First, an image search criterion is received by the computing device(step 1002). The search criterion may describe an object, such as awhite boat, that a user is searching for. Examples of search terms are“bench,” “boat,” and “life ring box” discussed with respect to FIG. 8.

Second, a panoramic image is identified by the computing device thatcontains an object that matches the search criterion (step 1004). Asdiscussed above with respect to FIG. 8, panoramic image 108 may beidentified as containing objects associated with “bench,” “boat,” and“life ring box.” The objects may be identified using any of thetechniques and systems described above.

Third, a thumbnail of the panoramic image specific to the object basedon a location of the object within the panoramic image is generated andoutput by the computing device (step 1006). The thumbnail may begenerated by projecting a portion of a 3D projection of the panoramicimage corresponding to the portion to a 2D plane. Continuing the examplefrom above, thumbnails 802, 804, and 806 may be generated responsive toreceiving search queries for “bench,” “boat,” and “life ring box,”respectively. In this way, a user who searches for an object that isdetermined to be within a panoramic image only receives a thumbnail of aportion of the panoramic image that contains the object.

Example System and Device

FIG. 11 depicts, generally at 1100, an example implementation showing anexample computing device 1102 that is representative of one or morecomputing systems and/or devices that may implement the varioustechniques described herein. This is illustrated through inclusion ofthe thumbnail module 104, which may be configured to generate thumbnailsfrom panoramic images. The computing device 1102 may be, for example, aserver of a service provider, a device associated with a client (e.g., aclient device), an on-chip system, and/or any other suitable computingdevice or computing system.

The example computing device 1102 as illustrated includes a processingsystem 1104, one or more computer-readable media 1106, and one or moreI/O interface 1108 that are communicatively coupled, one to another.Although not shown, the computing device 1102 may further include asystem bus or other data and command transfer system that couples thevarious components, one to another. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures. Avariety of other examples are also contemplated, such as control anddata lines.

The processing system 1104 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 1104 is illustrated as including hardware element 1110 that maybe configured as processors, functional blocks, and so forth. This mayinclude implementation in hardware as an application specific integratedcircuit or other logic device formed using one or more semiconductors.The hardware elements 1110 are not limited by the materials from whichthe elements are formed or the processing mechanisms employed therein.For example, processors may be configured as of semiconductor(s) and/ortransistors (e.g., electronic integrated circuits (ICs)). In such acontext, processor-executable instructions may beelectronically-executable instructions.

The computer-readable storage media 1106 is illustrated as includingmemory/storage 1112. The memory/storage 1112 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage component 1112 may include volatile media (such as randomaccess memory (RAM)) and/or nonvolatile media (such as read only memory(ROM), Flash memory, optical disks, magnetic disks, and so forth). Thememory/storage component 1112 may include fixed media (e.g., RAM, ROM, afixed hard drive, and so on) as well as removable media (e.g., Flashmemory, a removable hard drive, an optical disc, and so forth). Thecomputer-readable media 1106 may be configured in a variety of otherways as further described below.

Input/output interface(s) 1108 are representative of functionality toallow a user to enter commands and information to computing device 1102,and also allow information to be presented to the user and/or othercomponents or devices using various input/output devices. Examples ofinput devices include a keyboard, a cursor control device (e.g., amouse), a microphone, a scanner, touch functionality (e.g., capacitiveor other sensors that are configured to detect physical touch), a camera(e.g., which may employ visible or non-visible wavelengths such asinfrared frequencies to recognize movement as gestures that do notinvolve touch), and so forth. Examples of output devices include adisplay device (e.g., a monitor or projector), speakers, a printer, anetwork card, tactile-response device, and so forth. Thus, the computingdevice 1102 may be configured in a variety of ways as further describedbelow to support user interaction.

Various techniques may be described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof. The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesmay be implemented on a variety of commercial computing platforms havinga variety of processors.

An implementation of the described modules and techniques may be storedon or transmitted across some form of computer-readable media. Thecomputer-readable media may include a variety of media that may beaccessed by the computing device 1102. By way of example, and notlimitation, computer-readable media may include “computer-readablestorage media” and “computer-readable signal media.”

“Computer-readable storage media” may refer to media and/or devices thatenable persistent and/or non-transitory storage of information incontrast to mere signal transmission, carrier waves, or signals per se.Thus, computer-readable storage media refers to non-signal bearingmedia. The computer-readable storage media includes hardware such asvolatile and non-volatile, removable and non-removable media and/orstorage devices implemented in a method or technology suitable forstorage of information such as computer readable instructions, datastructures, program modules, logic elements/circuits, or other data.Examples of computer-readable storage media may include, but are notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical storage, harddisks, magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or other storage device, tangible media, orarticle of manufacture suitable to store the desired information andwhich may be accessed by a computer.

“Computer-readable signal media” may refer to a signal-bearing mediumthat is configured to transmit instructions to the hardware of thecomputing device 1102, such as via a network. Signal media typically mayembody computer readable instructions, data structures, program modules,or other data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, hardware elements 1110 and computer-readablemedia 1106 are representative of modules, programmable device logicand/or fixed device logic implemented in a hardware form that may beemployed in some implementations to implement at least some aspects ofthe techniques described herein, such as to perform one or moreinstructions. Hardware may include components of an integrated circuitor on-chip system, an application-specific integrated circuit (ASIC), afield-programmable gate array (FPGA), a complex programmable logicdevice (CPLD), and other implementations in silicon or other hardware.In this context, hardware may operate as a processing device thatperforms program tasks defined by instructions and/or logic embodied bythe hardware as well as a hardware utilized to store instructions forexecution, e.g., the computer-readable storage media describedpreviously.

Combinations of the foregoing may also be employed to implement varioustechniques described herein. Accordingly, software, hardware, orexecutable modules may be implemented as one or more instructions and/orlogic embodied on some form of computer-readable storage media and/or byone or more hardware elements 1110. The computing device 1102 may beconfigured to implement particular instructions and/or functionscorresponding to the software and/or hardware modules. Accordingly,implementation of a module that is executable by the computing device1102 as software may be achieved at least partially in hardware, e.g.,through use of computer-readable storage media and/or hardware elements1110 of the processing system 1104. The instructions and/or functionsmay be executable/operable by one or more articles of manufacture (forexample, one or more computing devices 1102 and/or processing systems1104) to implement techniques, modules, and examples described herein.

The techniques described herein may be supported by variousconfigurations of the computing device 1102 and are not limited to thespecific examples of the techniques described herein. This functionalitymay also be implemented all or in part through use of a distributedsystem, such as over a “cloud” 1114 via a platform 1116 as describedbelow.

The cloud 1114 includes and/or is representative of a platform 1116 forresources 1118. The platform 1116 abstracts underlying functionality ofhardware (e.g., servers) and software resources of the cloud 1114. Theresources 1118 may include applications and/or data that can be utilizedwhile computer processing is executed on servers that are remote fromthe computing device 1102. Resources 1118 can also include servicesprovided over the Internet and/or through a subscriber network, such asa cellular or Wi-Fi network.

The platform 1116 may abstract resources and functions to connect thecomputing device 1102 with other computing devices. The platform 1116may also serve to abstract scaling of resources to provide acorresponding level of scale to encountered demand for the resources1118 that are implemented via the platform 1116. Accordingly, in aninterconnected device implementation, implementation of functionalitydescribed herein may be distributed throughout the system 1100. Forexample, the functionality may be implemented in part on the computingdevice 1102 as well as via the platform 1116 that abstracts thefunctionality of the cloud 1114.

CONCLUSION

Although the invention has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or acts described. Rather, the specificfeatures and acts are disclosed as example forms of implementing theclaimed invention.

What is claimed is:
 1. In a digital medium object location environment,a method implemented by at least one computing device, the methodcomprising: receiving, by the at least one computing device, a singlepanoramic image; forming, by the at least one computing device, aplurality of portions from the single panoramic image; determining, bythe at least one computing device, which of the plurality of portionsinclude an object using object recognition; determining, by the at leastone computing device, a location of the object with respect to thesingle panoramic image based on which of the plurality of portionsinclude the object; and outputting, by the at least one computingdevice, an indication of the location of the object with respect to thesingle panoramic image.
 2. The method of claim 1, further comprisinggenerating a plurality of two-dimensional projections, respectively,from the plurality of portions and the determining of which of theplurality of portions include the object is based on the plurality oftwo-dimensional projections.
 3. The method of claim 2, wherein thegenerating includes generating the plurality of two-dimensionalprojections by projecting a respective said portion onto atwo-dimensional plane.
 4. The method of claim 3, wherein the generatingincludes sliding a window over a three-dimensional projection of thesingle panoramic image.
 5. The method of claim 3, wherein the projectingis performed for a plurality of different portion sizes.
 6. The methodof claim 3, wherein the two-dimensional projections of the portions ofthe singe panoramic image comprise equirectangular projections.
 7. Themethod of claim 3, wherein the object recognition is performed on eachof the two-dimensional projections of the portions of the singepanoramic image as the two-dimensional projections are generated.
 8. Themethod of claim 1, wherein the determining further comprises determininginformation about the object, the information including what the objectcomprises, a color of the object, attributes of the object, a shape ofthe object, identified words, or search terms associated with theobject.
 9. The method of claim 1, wherein the single panoramic imagecomprises a 360-degree view.
 10. The method of claim 1, wherein theindication of the location of the object defines a bounding area withinthea three-dimensional projection.
 11. In a digital medium searchenvironment, a method implemented by at least one computing device, themethod comprising: receiving, by the at least one computing device, animage search criterion; identifying, by the at least one computingdevice, a single panoramic image as corresponding to the image searchcriterion; obtaining, by the at least one computing device, a portion ofthe single panoramic image that includes an object specified by theimage search criterion, the portion determined from a plurality ofportions formed from the single panoramic image and identified asincluding the object using object recognition; and outputting, by the atleast one computing device, the obtained portion as part of an imagesearch result responsive to the image search criterion.
 12. The methodof claim 11, wherein the plurality of portions are two-dimensionalprojections.
 13. The method of claim 12, wherein the two-dimensionalprojections comprise equirectangular projections.
 14. The method ofclaim 12, wherein the two-dimensional projections are formed by slidinga window over a three-dimensional projection of the single panoramicimage.
 15. The method of claim 12, wherein the two-dimensionalprojections are formed by projecting a three-dimensional projection ofthe single panoramic image onto a two-dimensional plane.
 16. The methodof claim 12, wherein the two-dimensional projections including aplurality of different portion sizes.
 17. In a digital mediumenvironment to locate an object within a single panoramic image, asystem comprising: means for forming a plurality of portions from thesingle panoramic image; means for determining which of the plurality ofportions include the object using object recognition; means fordetermining a location of the object with respect to the singlepanoramic image based on which of the plurality of portions include theobject; and means for outputting an indication of the location of theobject with respect to the single panoramic image.
 18. The system ofclaim 17, wherein the single panoramic image comprises a 360-degreeview.
 19. The system of claim 17, wherein the indication of the locationof the object defines a bounding area within a three-dimensionalprojection.
 20. The system of claim 17, further comprising means forgenerating a plurality of two-dimensional projections, respectively,from the plurality of portions and the determining means of which of theplurality of portions include the object is based on the plurality oftwo-dimensional projections.